Skip to content

Fix plugin approval notification bypass and add resend command#338

Merged
simonhamp merged 1 commit intomainfrom
fix-plugin-approval-notifs
Apr 9, 2026
Merged

Fix plugin approval notification bypass and add resend command#338
simonhamp merged 1 commit intomainfrom
fix-plugin-approval-notifs

Conversation

@simonhamp
Copy link
Copy Markdown
Member

@simonhamp simonhamp commented Apr 9, 2026

Summary

  • Disabled the status select field in the Filament plugin edit form so plugin approvals must go through the dedicated Approve/Reject action buttons, which properly call Plugin::approve(). Previously an admin could change the status to "Approved" via the form, bypassing notifications, activity logging, and Satis sync.
  • Added plugins:resend-new-plugin-notifications artisan command to resend NewPluginAvailable notifications for specified approved plugins. Supports --dry-run and multiple plugin names.
  • Added 7 tests for the resend command covering opted-in/out users, author exclusion, missing/non-approved plugins, dry run, multiple plugins, and no recipients.

Test plan

  • All 7 new tests pass
  • Existing notification tests still pass
  • Pint lint passes
  • Verify the disabled status field renders correctly in the Filament admin
  • Run plugins:resend-new-plugin-notifications <plugin> --dry-run in production to preview

🤖 Generated with Claude Code

Disable the status field in the Filament plugin edit form to prevent
bypassing Plugin::approve() (which skips notifications, activity
logging, and Satis sync). Add an artisan command to resend
NewPluginAvailable notifications for specific approved plugins.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@simonhamp simonhamp marked this pull request as ready for review April 9, 2026 16:50
@simonhamp simonhamp merged commit 4c06632 into main Apr 9, 2026
2 checks passed
@simonhamp simonhamp deleted the fix-plugin-approval-notifs branch April 9, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant